package com.example.music;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    //定义UI组件
    TextView txt_ad;
    //倒计时变量
    int index=3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化UI组件
        txt_ad=this.findViewById(R.id.txt_ad);
        //启动倒计时子线程
        new MyTimer().execute();
    }

    //新建一个Asynctask子类的内部类，实现倒计时功能
    //第一个参数，子线程初始化的时候传入的参数类型
    //第二个参数，子线程运行过程中数据交互的数据类型
    //第三个参数，子线程运行结束后要回传的数据类型
    class MyTimer extends AsyncTask<Void,Integer,Void>{
        //子线程初始化的操作
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
        //子线程运行结束后的操作
        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
        }
        //子线程运行过程中的数据交互，一般用这个方法去修改主线程UI的值
        @Override
        protected void onProgressUpdate(Integer... values) {
            super.onProgressUpdate(values);
            txt_ad.setText("广告倒计时"+values[0]+"秒");
        }
        //子线程的核心逻辑，必须要重写
        @Override
        protected Void doInBackground(Void... voids) {
            while(index>0){
                publishProgress(index);
                index--;
                //线程休眠1秒钟
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            //如果倒计时为0，则跳转到音乐列表界面
            if(index<=0){
                Intent intent =new Intent();
                intent.setClass(MainActivity.this,MusicListActivity.class);
                startActivity(intent);
            }
            return null;
        }
    }
}